/*
 * CcStatement.h
 *
 *  Created on: 2012/05/03
 *      Author: guanxiaoying
 */

#ifndef CCSTATEMENT_H_
#define CCSTATEMENT_H_
/*  KIND_STATEMENTINFO	文の情報テーブル  */

/******* 文の種類 KIND_STATEMENTINFO ***********************************/
#define STMT_EXP  			1
#define STMT_LABEL 			2
#define STMT_CASE  			3
#define STMT_DEFAULT 		4
#define STMT_BLOCK   		5
#define STMT_IF				6
#define STMT_SWITCH			7
#define STMT_FOR			8
#define STMT_WHILE			9
#define STMT_DO				10
#define STMT_GOTO			11
#define STMT_BREAK			12
#define STMT_CONTINUE		13
#define STMT_RETURN			14
#define STMT_DEC			15
/********************************************************/
/* 構文情報     											*/
/********************************************************/
#define xSTMT_EXP  			STMT_EXP
#define xSTMT_LABEL 		STMT_LABEL
#define xSTMT_CASE  		STMT_CASE
#define xSTMT_DEFAULT 		STMT_DEFAULT
#define xSTMT_BLOCK   		STMT_BLOCK
#define xSTMT_IF			STMT_IF
#define xSTMT_SWITCH		STMT_SWITCH
#define xSTMT_FOR			STMT_FOR
#define xSTMT_WHILE			STMT_WHILE
#define xSTMT_DO			STMT_DO
#define xSTMT_GOTO			STMT_GOTO
#define xSTMT_BREAK			STMT_BREAK
#define xSTMT_CONTINUE		STMT_CONTINUE
#define xSTMT_RETURN		STMT_RETURN
#define xSTMT_DEC			STMT_DEC

AST CcStmtFuncBody( U2 kind, AST parent );
AST CcStmtBlockInExp( U2 kind, AST parent );
AST CcStmtGetLastType( AST astStmt );
AST  CcStmtGetCurrFunction( VOID );
VOID CcStmtInit(VOID);
#endif /* CCSTATEMENT_H_ */
